#ifndef DEFINE_H
#define DEFINE_H

#include <QDateTime>
#include <QDebug>

#include "sql/errorlog.h"
#include "window/component/notification_manager.h"
#define showWarning(msg)                                   \
    {                                                      \
        NotificationManager::instance()->showWarning(msg); \
        qWarning() << msg;                                 \
    }
#define showInfo(msg)                                   \
    {                                                   \
        NotificationManager::instance()->showInfo(msg); \
        qInfo() << msg;                                 \
    }
#define showSuccess(msg)                                   \
    {                                                      \
        NotificationManager::instance()->showSuccess(msg); \
        qInfo() << msg;                                    \
    }
#define showError(deviceName, msg, ...)                                                          \
    {                                                                                            \
        ErrorLog::insertError(QDateTime::currentDateTime(), deviceName, QString("%1").arg(msg)); \
        NotificationManager::instance()->showError(QString("%1 → %2").arg(deviceName).arg(msg),  \
                                                   ##__VA_ARGS__);                               \
        qCritical() << deviceName << "→" << msg;                                                 \
    }
#endif
